﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Castle.ActiveRecord;

namespace LIMS.Entities
{
    [ActiveRecord(Lazy = true)]
    [Serializable]
    public class ProductHistory : ActiveRecordBase // : BaseEntity<int>
    {

        public ProductHistory() { }

        #region Private
        private int id = 0;
        private int productId = 0;
        private int manufacturerId = 0;
        private int supplierId = 0;
        private string batchNo = string.Empty;
        private string lotNo = string.Empty;
        private DateTime expiryDate;
        private DateTime manufacturingDate;
        private DateTime receivedDate;
        private int receivedBy = 0;
        private string gateEntryNo = string.Empty;
        private int locationCategoryId = 0;
        private string customLocation = string.Empty;
        private int createdBy = 0;
        private DateTime createdDate;
        private int updatedby = 0;
        private DateTime updateDate;
        private string notes = string.Empty;


        #endregion

        #region public
        [PrimaryKey(PrimaryKeyType.Increment)]
        public virtual int Id
        {
            get { return id; }
            set { id = value; }
        }

        public virtual int ProductId
        {
            get { return productId; }
            set { productId = value; }
        }

        public virtual int SupplierId
        {
            get { return supplierId; }
            set { supplierId = value; }
        }

        public virtual int ManufacturerId
        {
            get { return manufacturerId; }
            set { manufacturerId = value; }
        }

        public virtual string BatchNo
        {
            get { return batchNo; }
            set { batchNo = value; }
        }

        public virtual DateTime ManufacturingDate
        {
            get { return manufacturingDate; }
            set { manufacturingDate = value; }
        }

        public virtual string LotNo
        {
            get { return lotNo; }
            set { lotNo = value; }
        }

        public virtual DateTime ExpiryDate
        {
            get { return expiryDate; }
            set { expiryDate = value; }
        }

        public virtual DateTime ReceivedDate
        {
            get { return receivedDate; }
            set { receivedDate = value; }
        }

        public virtual int ReceivedBy
        {
            get { return receivedBy; }
            set { receivedBy = value; }
        }

        public virtual string GateEntryNo
        {
            get { return gateEntryNo; }
            set { gateEntryNo = value; }
        }

        public virtual int LocationCategoryId
        {
            get { return locationCategoryId; }
            set { locationCategoryId = value; }
        }

        public virtual string CustomLocation
        {
            get { return customLocation; }
            set { customLocation = value; }
        }

        public virtual DateTime CreatedDate
        {
            get { return createdDate; }
            set { createdDate = value; }
        }

        public virtual int LastUpdatedBy
        {
            get { return updatedby; }
            set { updatedby = value; }
        }

        public virtual DateTime LastUpdated
        {
            get { return updateDate; }
            set { updateDate = value; }
        }

        public virtual string Notes
        {
            get { return notes; }
            set { notes = value; }
        }

        public virtual int CreatedBy
        {
            get { return createdBy; }
            set { createdBy = value; }
        }
        #endregion
    }
}


